package com.css.influence.entity;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @author Dbj
 * @date 2024年09月04日  16:01
 */
@Data
@TableName(value = "earthquake",autoResultMap = true)
@KeySequence("earthquake_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
public class EarthQuake implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId
    private String id;

    /**
     * 地震id
     */
    private String eqimId;

    /**
     * 标题    发震时刻 + 地震位置 + 震级 + 地震类型 例如
     * 2022-10-19 16:05:43Mindanao, Philippines(Mw)M5.728513级地震(自动)
     * 2022-05-15 03:48:03新疆克孜勒苏州阿图什市M3.9级地震
     */
    private String title;

    /**
     * 震级
     */
    private Double earthquakeMagnitude;

    /**
     * 发震时刻
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date earthquakeTime;

    /**
     * 经度
     */
    private Double longitude;

    /**
     * 纬度
     */
    private Double latitude;

    /**
     * 震源深度
     */
    private Double depth;

    /**
     * 参考位置
     */
    private String referenceLocation;

    /**
     * 区域  0--全部  1--国内  2--国外
     */
    private Integer area;

    /**
     * 地震类型  1--正式地震  2--测试地震  3--演练地震  4--自动地震, 默认是2 测试地震
     */
    private Integer earthquakeType;

    /**
     * 是否公开 默认为不公开
     */
    private Boolean isPublish;

    /**
     * 是否必达通触发检验
     */
    private Boolean bida;

    /**
     * 是否电话会议触发检验
     */
    private Boolean phoneConference;

    /**
     * 触发模式  0--自动  1--手动
     */
    private Integer trigMode;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @TableField(exist = false)
    private Integer pageNo; //页码，从 1 开始

    @TableField(exist = false)
    private Integer pageSize; //每页条数

    @TableField(exist = false)
    private Integer magnitudeType; //震级类型  0--全部  1--3级以下  2--3-5级  3--5-7级  4--7级以上  5--输入的震级

    @TableField(exist = false)
    private String stat; //震级开始

    @TableField(exist = false)
    private String end; //震级结束

    @TableField(exist = false)
    private Integer timeType; //时间类型  0--全部  1--最近24小时  2--最近一周  3--最近一个月  4--最近一年  5--自定义的时间

    @TableField(exist = false)
    private String statTime; //开始时间

    @TableField(exist = false)
    private String endTime; //结束时间

//    @Override
//    public String toString() {
//        return "EarthQuake{" +
//                "id=" + id +
//                ", eqimId='" + eqimId +
//                ", title='" + title +
//                ", earthquakeMagnitude=" + earthquakeMagnitude +
//                ", earthquakeTime=" + getEarthquakeTimeStr(earthquakeTime) +
//                ", longitude=" + longitude +
//                ", latitude=" + latitude +
//                ", depth=" + depth +
//                ", referenceLocation='" + referenceLocation + '\'' +
//                ", area=" + area +
//                ", earthquakeType='" + earthquakeType + '\'' +
//                ", isPublish='" + isPublish + '\'' +
//                ", trigMode=" + trigMode +
//                ", createTime=" + getEarthquakeTimeStr(createTime) +
//                ", updateTime=" + getEarthquakeTimeStr(updateTime) +
//                ", magnitudeType=" + magnitudeType +
//                ", stat='" + stat + '\'' +
//                ", end='" + end + '\'' +
//                ", timeType=" + timeType +
//                ", statTime='" + statTime + '\'' +
//                ", endTime='" + endTime + '\'' +
//                '}';
//    }
    /**
     * 所属省份
     */
    private String belongToProvince;
    /**
     * 所属省份
     */
    private String provinceId;
    /**
     * 省份编码 切换数据源需用
     */
    private String divisionCode;
}

